package main

import (
	"context"
	"encoding/json"
	"fmt"
	"strings"

	"github.com/go-deepseek/deepseek"
	"github.com/go-deepseek/deepseek/request"
)

var alls = []string{
	"是我家雨琦。",
	"雨琦演的广告，我们在学校看过，就是老师给我们放电影时候看的",
	"虽然我不喜欢看广告，但是宋雨琦的广告我真的爱看呀",
	"你们太会选代言人了吧@脉动",
	"我们体育老师体育课给我们放电影，我们班好多男同学说：这个女人真美，我们班的女同学都认识宋雨琦",
	"以后之喝脉动",
	"买饮料送不送代言人？",
	"现在就去订购",
	"雨琦",
	"哦，天呐，有一句话，雨琦的声音不是那样的。",
	"我就爱雨琪",
	"雨琦！可爱",
	"看过了",
	"雨琦",
	"我同学看到这条广告直接哭了。上课看开心锤锤的时候。",
	"特别好喝。尤其是柠檬味的。",
	"我买了五大行天天在家喝。",
	"宋雨琦！",
	"送我一个代言人",
	"哇塞哇塞，宝宝好美啊，买脉动送我一个雨琪宝宝吧",
	"@卡布叻_盐汽水味的🍟",
	"买的举手",
	"阿脉，我们这还没有",
	"买5000箱",
	"雨琦",
	"等我，去买两箱！",
	"以后只喝脉动",
	"好久没喝了，这下不得不又喝起来了",
	"我只要汽水的轻松~",
	"好爱送你琦呀",
	"我家雨琦代言的东西一定要买",
	"我要端箱",
	"因为和雨琦联动，我要端箱",
	"雨琦！",
	"你被我盯上了脉动[捂嘴笑R]",
	"品牌方找对人啦",
	"以后就喝脉动",
	"必须只喝脉动",
	"由于我们班看动漫的时候看到了这个广告，所以我们班每次运动的时候就会说：＂脉动救我～＂",
	"太好了，是雨琦，我们有救啦",
	"有坐一起带白的，我要喝。",
	"我们学校中午吃饭时让看电视，每次都有广告，这样能看见雨琦了！！！开心开心",
	"那么好，那我以后只喝脉动。",
	"难怪我最近在电视上还看到了宋雨琦，我当时以为我眼花了呢。",
	"从现在开始我只喝脉动",
	"立马下单脉动",
	"@🌷林淮🌷",
	"我唯一爱看的广告(Because有雨琦)",
	"脉动你终于有实力了太有实力了，我喝你一辈子",
	"必须买",
	"Ok，以后就喝脉动",
	"曲琦以后要喝什么饮料了吗？",
	"脉动啊！你可真会选，选到我家主子了",
	"以后饮料只喝脉动了",
	"买了三箱",
	"脉动你是知道找谁的",
	"脉动眼光真好",
	"지금부터",
	"雨琦超帅",
	"行了，我现在天天都要买了",
	"太好了，是雨琪弄的，我没有救啦",
	"这个是真的，不买不行",
	"@一只鸡腿",
	"雨琦姐姐！！！",
	"@筱果冻（稻米）",
	"呜我也要",
	"我中了！！",
	"我担好美",
	"我推宋雨琦，",
	"好看",
	"什么东西？我家宋雨琦代言脉动了！！",
	"@筱果冻（稻米）",
	"可以啊，雨琦印在包装上吗？",
	"尝尝青草味的",
	"官方太用心了。雨琦造型好美。",
	"买脉动送不送代言人",
	"我买一瓶脉动，能把雨琦买过来吗？",
	"支持脉动品牌代言人宋雨琦",
	"我推。",
	"第一眼广告，不看。第二眼雨琦，直接看完。",
	"**一个关于和代言人结婚的表情包**",
	"买脉动送不送代言人呀",
	"逼我买脉动？宋雨琦你不要小看你的魅力了",
	"谁懂",
	"哇~",
	"宋雨旑",
	"雨琦♥",
	"买脉动能送雨琦吗",
	"雨琦",
	"我要买六箱啊，买脉动。之后呢，里面有宋雨琦。",
	"直接叫他宋雨琦来我家。",
	"太好了，是雨琦我们有救了",
	"我家琦宝真好看哦",
	"我们学校就有",
	"@披萨🍕",
	"宋雨琦！！！+一个关于代言人的大头照",
	"第1次看广告都这么津津有味",
	"太爱脉动了",
	"我同学看到这条广告直接哭了。上课看开心锤锤的时候。",
	"感覺可以買100箱喔",
	"我宣布麦冬将成为我的新宠。",
	"我觉得可以叫我妈买两箱",
	"如果是雨琦打的广告哈，那我就必须喝",
	"@宋雨琦_G-I-DLE",
	"脉动，你等我，我去抢1000箱",
	"雨琦？",
	"哇偶",
	"我们在学校看电影的时候广告也出来这个了，那时候我看到宋雨琦激动了好久",
	"我去！雨琦！曲奇们！快来！",
	"雨琦",
	"必须2这个",
	"买这个脉动上面会有宋雨琦的联动吗？",
	"宋雨琪我喜欢。",
	"太帅了",
	"居然代言脉动了必须买五箱",
	"不是雨琦本来就会。",
	"雨琦弟弟？直接买一箱",
	"雨琦",
	"宋雨琦什么时候拍",
	"买",
	"那里，雨琦很厉害的，不可能扔不进",
	"雨琦代言的我直接买一车",
	"雨琦！",
	"我滴妈，代言真是一个一个接啊",
	"666",
	"好帅",
	"雨琦的代言必须支持",
	"雨琦好帅",
	"这个味道很好喝",
	"好美",
	"我春游买的同款",
	"好美",
	"学姐教我",
	"可爱可爱",
	"笑死我了啊啊有我们学校4.25我会去看的",
	"篮球小狗",
	"雨琦",
	"还有变装真不错",
	"宝宝",
	"雨琦宝宝",
	"雨琦厉害",
	"太很快了吧",
	"来瓶脉动",
	"一起脉动起来",
	"好帅",
	"好耶！是篮球琦琦",
	"假装投篮不进的琦琦哈哈哈",
	"三岁就会打篮球",
	"哇哦",
	"好厉害的宋雨琦",
	"脉脉我听不到雨琦声音",
	"好美",
	"今天刚到货试了下柚橘和桃子的",
	"哦这款还没喝过，等青草喝完试一试这个造型最喜欢了",
	"好美",
	"雨琦学姐可以教我打篮球吗",
	"雨琦好阳光",
	"我的老公",
	"我来占位了，雨琦好美",
	"脉脉",
	"脉脉可以让代言人教我打篮球嘛",
	"怎样加入代言人雨琦的战队",
	"这款好喝吗？之前买的还没喝完，要不喝完尝尝",
	"雨琦这个造型超漂亮的！",
	"好帅",
	"宝宝",
	"wow",
	"三岁就会打篮球的琦宝",
	"好漂酿",
	"雨琦妹妹好漂亮",
	"这代言人太美了",
	"太厉害了雨琦宝宝",
	"代言人太美啦",
	"哇@宋雨琦_G-I-DLE",
	"哇塞",
	"美美的",
	"好少年气息！！！",
	"雨琦联名的必须买一箱",
	"**一张代言人穿着与视频同款的",
	"**一个关于和代言人结婚的表情包**",
	"谁家雨琦最好看？",
	"代言人宋雨琦太美啦+一个代言人穿着蓝色半透明裙子的图片",
	"脉脉可以让代言人教我打篮球吗+一个代言人穿着蓝色半透明裙子的图片",
	"@祈羽铃颂（曲琦）",
	"@念渔Aa",
	"瓶子上面印着一个雨琦，我天天喝。+一个抽象的用于表达对代言人喜爱的表情包",
	"我打篮球喝了好好喝",
	"我去，以后除了脉动，其他的饮料有我一律不喝",
	"我今天去买一箱",
	"我要买100箱",
	"告诉我这个品牌在哪买",
	"好美",
	"美神。。",
	"**一个眼睛放光嘴巴张开表示很赞叹的表情包**",
	"**一个代言人比心的表情包**",
	"我靠",
	"雨琦宝宝我爱你",
	"那我得多买几箱了",
	"第一眼：什麼廣告",
	"买一瓶脉动送一个宋雨琦吗？",
	"**一个关于和代言人结婚的表情包**",
	"厉害",
	"**一张代言人穿着与视频同款的",
	"最纯爱那年是宋雨琦代言的东西，我都会疯狂买（好吧，其实现在也是",
	"买一瓶送代言人吗？",
	"**一个由网友魔改的代言人比心的有点抽象的表情**",
	"雨琦代言的必须多买点",
	"我买一瓶代言人可以送给我吗",
	"**一个赞的表情**",
	"**一张代言人穿着与视频同款的",
	"**一个赞的表情**",
	"太美了",
	"好漂亮的代言人啊",
	"给个链接吧",
	"宋雨琦做得好",
	"**一个赞的表情**",
	"雨琦美美哒",
	"漂亮",
}

var allK = [8][]string{
	{
		"送一个宋雨琦",
		"谁家雨琦最好看",
		"雨琦姐姐",
		"雨琦宝宝",
		"我推",
		"宋雨琪",
		"可爱",
		"送雨琦",
		"学姐教我",
		"美神",
		"曲琦",
		"太美了",
		"发带和衣服太好看了",
		"我的老公",
		"好漂亮",
		"笑死我了",
		"好少年气息",
		"雨琦买过来",
		"雨琦超帅",
		"我爱你",
		"爱看",
		"哇哦",
		"哇塞",
		"宝宝",
		"宋雨琦",
		"教我打篮球",
		"主子",
		"好阳光",
		"爱雨琪",
		"雨琦♥",
		" 送代言人",
		"赞",
		"做得好",
		"比心",
		"好厉害",
		"我靠",
		"太帅了",
		"雨琦很厉害的",
		"wow",
		"雨琦厉害",
		"琦宝真好看",
		"太美啦",
		"漂亮",
		"好爱",
		"美美哒",
		"真美",
		"太厉害了",
		"妈呀帅死我",
		"好看",
		"琦琦",
		"厉害",
		"好漂酿",
		"代言人可以送给我",
		"666",
		"好美",
		"篮球小狗",
		"送代言人",
		"好可爱",
		"雨琪宝宝",
		"造型超漂亮的",
		"琦宝",
		"好帅",
		"结婚",
		"雨琦",
		"好米",
		"哇",
		"哇偶",
	},
	{
		"买脉动",
		"只喝脉动",
		"买一车",
		"我也要",
		"买两箱",
		"去订购",
		"喝脉动",
		"以后只喝脉动",
		"一定要买",
		"必须支持",
		"周六必买",
		"开心开心",
		"买的举手",
		"買一个",
		"必须多买点",
		"必须买一箱",
		"其他的饮料有我一律不喝",
		"買100箱",
		"买5000箱",
		"抢1000箱",
		"给我咱买脉动",
		"买100箱",
		"买六箱",
		"多买几箱",
		"立马下单",
		"不得不又喝起来",
		"疯 狂买",
		"端箱",
		"以后就喝脉动",
		"买了三箱",
		"买一箱",
		"지금부터 나는 맥동만 마신다",
		"不买不行",
		"买",
		"买饮料",
		"天天都要买了",
		"我天天喝",
		"必须买",
		"必须买五箱",
		"我喝你一辈子",
		"我要喝",
		"以后饮料只喝脉动了",
	},
	{
		"我已经喝上了",
		"柚橘",
		"很好喝",
		"柠檬味",
		"之前买的还没喝完",
		" 要不喝完尝尝",
		"只要汽水的轻松",
		"我现在就在喝",
		"我中了",
		"青草味",
		"每次都有广告，这样能看见雨琦了",
		"好喝吗",
		"桃子味",
		"好好喝",
		"桃子",
		"买的同款",
		"青草",
		"我喜欢喝",
		"天天在家喝",
		"这个造型最喜欢了",
		"好喝",
	},
	{
		"直接哭了",
		"哭了",
		"哇塞",
		"脉动你是知道找谁的",
		"支持",
		"找对人",
		"广告也出来这个了",
		"麦冬将成为我的新宠",
		"你被我盯上了",
		"太会选代言人",
		"激动",
		"爱脉动",
		"你可真会选",
		"你终于有实力了",
		"津津有味",
		"脉动眼光真好",
	},
	{
		"变装真不错",
		"打篮球",
		"篮球",
		"加入代言人雨琦的战队",
		"联动",
	},
	{
		"状态一键回来",
		"来瓶脉动",
		"脉动回来",
		"不可能扔不进",
		"一起脉动起来",
		"一个一个接",
	},
	{
		"脉动救我",
		"我没有救啦",
		"我们有救啦",
	},
	{
		"在哪买",
		"给个链接",
	},
}

var hitCount = [8][]int{}
var allKEnglish = [8][]string{}

var outputColorMark = [8]string{
	"COLOR_MARK_A",
	"COLOR_MARK_B",
	"COLOR_MARK_C",
	"COLOR_MARK_D",
	"COLOR_MARK_E",
	"COLOR_MARK_F",
	"COLOR_MARK_G",
	"COLOR_MARK_H",
}
var basicFontSize = [8]float64{
	500 - 62.5*0,
	500 - 62.5*1,
	500 - 62.5*2,
	500 - 62.5*3,
	500 - 62.5*4,
	500 - 62.5*5,
	500 - 62.5*6,
	500 - 62.5*7,
}

type OutputResult struct {
	TypeIdx            int
	EnglishKeyWordName string
	ParentInTheCatalog float64
}

type CloudWordData struct {
	Name      string  `json:"name"`
	Value     float64 `json:"value"`
	TextStyle struct {
		Color string `json:"color"`
	} `json:"textStyle"`
}

var allResult = []OutputResult{}
var formatedDatas = []CloudWordData{}

func main() {
	for idx := range allK {
		hitCount[idx] = make([]int, len(allK[idx]))
	}
	for idx := range allK {
		allKEnglish[idx] = make([]string, len(allK[idx]))
	}

	for _, value := range alls {
		for idx, val := range allK {
			for i, str := range val {
				if strings.Contains(value, str) {
					hitCount[idx][i]++
				}
			}
		}
	}

	// translate
	{
		client, _ := deepseek.NewClient("YOUR TOKEN")

		for index, value := range allK {
			for ind, val := range value {
				chatReq := &request.ChatCompletionsRequest{
					Model:  deepseek.DEEPSEEK_CHAT_MODEL,
					Stream: false,
					Messages: []*request.Message{
						{
							Role:    request.RoleUser,
							Content: fmt.Sprintf("你现在是一个专业的翻译软件，请把下面的这个中文翻译为英文，并且将翻译结果用英文的双引号包裹起来，并且只返回翻译结果，不要返回任何其他部分。\n%#v", val),
						},
					},
				}

				chatResp, err := client.CallChatCompletionsChat(context.Background(), chatReq)
				if err != nil {
					fmt.Println("Error =>", err)
					return
				}

				fixedOne := strings.ReplaceAll(chatResp.Choices[0].Message.Content, `"`, "")
				fmt.Printf("output => %s\n", fixedOne)
				allKEnglish[index][ind] = fixedOne
			}
		}
	}

	for typeIndex, keywordsInThisType := range hitCount {
		sum := 0
		for _, value := range keywordsInThisType {
			sum += value
		}
		for keywordIndexInThisType, keyWordHitCount := range keywordsInThisType {
			percent := float64(keyWordHitCount) / float64(sum)
			if percent < 0.1 {
				continue
			}
			allResult = append(allResult, OutputResult{
				TypeIdx:            typeIndex,
				EnglishKeyWordName: allKEnglish[typeIndex][keywordIndexInThisType],
				ParentInTheCatalog: percent,
			})
		}
	}

	for _, value := range allResult {
		formatedDatas = append(formatedDatas, CloudWordData{
			Name:  value.EnglishKeyWordName,
			Value: basicFontSize[value.TypeIdx] * value.ParentInTheCatalog,
			TextStyle: struct {
				Color string `json:"color"`
			}{
				Color: outputColorMark[value.TypeIdx],
			},
		})
	}
	b, _ := json.Marshal(formatedDatas)
	fmt.Println(string(b))
}
